<?php declare(strict_types=1);


namespace App\Model\Entity;

use Swoft\Db\Annotation\Mapping\Column;
use Swoft\Db\Annotation\Mapping\Entity;
use Swoft\Db\Annotation\Mapping\Id;
use Swoft\Db\Eloquent\Model;


/**
 * 用户信息表
 * Class Members
 *
 * @since 2.0
 *
 * @Entity(table="members")
 */
class Members extends Model
{
    /**
     * 
     * @Id()
     * @Column()
     *
     * @var int
     */
    private $id;

    /**
     * 注册邮箱
     *
     * @Column()
     *
     * @var string
     */
    private $email;

    /**
     * 手机号
     *
     * @Column()
     *
     * @var string|null
     */
    private $mobile;

    /**
     * 昵称
     *
     * @Column()
     *
     * @var string
     */
    private $nickname;

    /**
     * 密码
     *
     * @Column()
     *
     * @var string
     */
    private $password;

    /**
     * 头像
     *
     * @Column()
     *
     * @var string|null
     */
    private $avatar;

    /**
     * 注册IP
     *
     * @Column(name="reg_ip", prop="regIp")
     *
     * @var string
     */
    private $regIp;

    /**
     * 等级
     *
     * @Column()
     *
     * @var int|null
     */
    private $level;

    /**
     * 升级时间
     *
     * @Column(name="level_obtain_time", prop="levelObtainTime")
     *
     * @var int
     */
    private $levelObtainTime;

    /**
     * 为0时客户端升级后会有一个动画
     *
     * @Column(name="level_is_show", prop="levelIsShow")
     *
     * @var int
     */
    private $levelIsShow;

    /**
     * 国家ID
     *
     * @Column()
     *
     * @var int|null
     */
    private $nation;

    /**
     * 性别 F女 M男 N保密
     *
     * @Column()
     *
     * @var string
     */
    private $gender;

    /**
     * 0:删除,1:正常,3:禁言 4:临时封号 5永久封号 6待删除
     *
     * @Column()
     *
     * @var int
     */
    private $status;

    /**
     * 
     *
     * @Column(name="updated_at", prop="updatedAt")
     *
     * @var int
     */
    private $updatedAt;

    /**
     * 
     *
     * @Column(name="created_at", prop="createdAt")
     *
     * @var int
     */
    private $createdAt;

    /**
     * 邮箱是否已验证 1:是 0:否
     *
     * @Column(name="is_verify", prop="isVerify")
     *
     * @var int
     */
    private $isVerify;

    /**
     * 是否采用的系统默认头像 1:是 0:否
     *
     * @Column(name="sys_avatar", prop="sysAvatar")
     *
     * @var int
     */
    private $sysAvatar;

    /**
     * 用户简介
     *
     * @Column()
     *
     * @var string|null
     */
    private $profile;

    /**
     * 用户生日
     *
     * @Column()
     *
     * @var int|null
     */
    private $birthday;

    /**
     * 用户展示名
     *
     * @Column()
     *
     * @var string|null
     */
    private $displayname;

    /**
     * 是否有圆形头像 1:有 0:无
     *
     * @Column(name="circle_avatar", prop="circleAvatar")
     *
     * @var int|null
     */
    private $circleAvatar;

    /**
     * 会员中心封面
     *
     * @Column(name="cover_name", prop="coverName")
     *
     * @var string|null
     */
    private $coverName;

    /**
     * 设备唯一标识符 header传值
     *
     * @Column(name="serial_number", prop="serialNumber")
     *
     * @var string|null
     */
    private $serialNumber;

    /**
     * 来自老设备注册 1:是 ：否
     *
     * @Column(name="from_old_device", prop="fromOldDevice")
     *
     * @var int
     */
    private $fromOldDevice;

    /**
     * 状态 1:正常 2:brand 3:shop
     *
     * @Column()
     *
     * @var int|null
     */
    private $type;

    /**
     * 关联的brand_id或者shop_id
     *
     * @Column(name="type_id", prop="typeId")
     *
     * @var int|null
     */
    private $typeId;

    /**
     * 禁言次数
     *
     * @Column(name="banned_count", prop="bannedCount")
     *
     * @var int
     */
    private $bannedCount;

    /**
     * 解禁次数
     *
     * @Column(name="lift_count", prop="liftCount")
     *
     * @var int
     */
    private $liftCount;

    /**
     * 0:未修改，1：已修改
     *
     * @Column(name="is_update_birthday", prop="isUpdateBirthday")
     *
     * @var int
     */
    private $isUpdateBirthday;

    /**
     * 用户uuid
     *
     * @Column()
     *
     * @var string
     */
    private $uuid;

    /**
     * im全局禁用状态：1:禁用 0：关闭
     *
     * @Column(name="global_im_status", prop="globalImStatus")
     *
     * @var int|null
     */
    private $globalImStatus;


    /**
     * @param int $id
     *
     * @return void
     */
    public function setId(int $id): void
    {
        $this->id = $id;
    }

    /**
     * @param string $email
     *
     * @return void
     */
    public function setEmail(string $email): void
    {
        $this->email = $email;
    }

    /**
     * @param string|null $mobile
     *
     * @return void
     */
    public function setMobile(?string $mobile): void
    {
        $this->mobile = $mobile;
    }

    /**
     * @param string $nickname
     *
     * @return void
     */
    public function setNickname(string $nickname): void
    {
        $this->nickname = $nickname;
    }

    /**
     * @param string $password
     *
     * @return void
     */
    public function setPassword(string $password): void
    {
        $this->password = $password;
    }

    /**
     * @param string|null $avatar
     *
     * @return void
     */
    public function setAvatar(?string $avatar): void
    {
        $this->avatar = $avatar;
    }

    /**
     * @param string $regIp
     *
     * @return void
     */
    public function setRegIp(string $regIp): void
    {
        $this->regIp = $regIp;
    }

    /**
     * @param int|null $level
     *
     * @return void
     */
    public function setLevel(?int $level): void
    {
        $this->level = $level;
    }

    /**
     * @param int $levelObtainTime
     *
     * @return void
     */
    public function setLevelObtainTime(int $levelObtainTime): void
    {
        $this->levelObtainTime = $levelObtainTime;
    }

    /**
     * @param int $levelIsShow
     *
     * @return void
     */
    public function setLevelIsShow(int $levelIsShow): void
    {
        $this->levelIsShow = $levelIsShow;
    }

    /**
     * @param int|null $nation
     *
     * @return void
     */
    public function setNation(?int $nation): void
    {
        $this->nation = $nation;
    }

    /**
     * @param string $gender
     *
     * @return void
     */
    public function setGender(string $gender): void
    {
        $this->gender = $gender;
    }

    /**
     * @param int $status
     *
     * @return void
     */
    public function setStatus(int $status): void
    {
        $this->status = $status;
    }

    /**
     * @param int $updatedAt
     *
     * @return void
     */
    public function setUpdatedAt(int $updatedAt): void
    {
        $this->updatedAt = $updatedAt;
    }

    /**
     * @param int $createdAt
     *
     * @return void
     */
    public function setCreatedAt(int $createdAt): void
    {
        $this->createdAt = $createdAt;
    }

    /**
     * @param int $isVerify
     *
     * @return void
     */
    public function setIsVerify(int $isVerify): void
    {
        $this->isVerify = $isVerify;
    }

    /**
     * @param int $sysAvatar
     *
     * @return void
     */
    public function setSysAvatar(int $sysAvatar): void
    {
        $this->sysAvatar = $sysAvatar;
    }

    /**
     * @param string|null $profile
     *
     * @return void
     */
    public function setProfile(?string $profile): void
    {
        $this->profile = $profile;
    }

    /**
     * @param int|null $birthday
     *
     * @return void
     */
    public function setBirthday(?int $birthday): void
    {
        $this->birthday = $birthday;
    }

    /**
     * @param string|null $displayname
     *
     * @return void
     */
    public function setDisplayname(?string $displayname): void
    {
        $this->displayname = $displayname;
    }

    /**
     * @param int|null $circleAvatar
     *
     * @return void
     */
    public function setCircleAvatar(?int $circleAvatar): void
    {
        $this->circleAvatar = $circleAvatar;
    }

    /**
     * @param string|null $coverName
     *
     * @return void
     */
    public function setCoverName(?string $coverName): void
    {
        $this->coverName = $coverName;
    }

    /**
     * @param string|null $serialNumber
     *
     * @return void
     */
    public function setSerialNumber(?string $serialNumber): void
    {
        $this->serialNumber = $serialNumber;
    }

    /**
     * @param int $fromOldDevice
     *
     * @return void
     */
    public function setFromOldDevice(int $fromOldDevice): void
    {
        $this->fromOldDevice = $fromOldDevice;
    }

    /**
     * @param int|null $type
     *
     * @return void
     */
    public function setType(?int $type): void
    {
        $this->type = $type;
    }

    /**
     * @param int|null $typeId
     *
     * @return void
     */
    public function setTypeId(?int $typeId): void
    {
        $this->typeId = $typeId;
    }

    /**
     * @param int $bannedCount
     *
     * @return void
     */
    public function setBannedCount(int $bannedCount): void
    {
        $this->bannedCount = $bannedCount;
    }

    /**
     * @param int $liftCount
     *
     * @return void
     */
    public function setLiftCount(int $liftCount): void
    {
        $this->liftCount = $liftCount;
    }

    /**
     * @param int $isUpdateBirthday
     *
     * @return void
     */
    public function setIsUpdateBirthday(int $isUpdateBirthday): void
    {
        $this->isUpdateBirthday = $isUpdateBirthday;
    }

    /**
     * @param string $uuid
     *
     * @return void
     */
    public function setUuid(string $uuid): void
    {
        $this->uuid = $uuid;
    }

    /**
     * @param int|null $globalImStatus
     *
     * @return void
     */
    public function setGlobalImStatus(?int $globalImStatus): void
    {
        $this->globalImStatus = $globalImStatus;
    }

    /**
     * @return int
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * @return string
     */
    public function getEmail(): ?string
    {
        return $this->email;
    }

    /**
     * @return string|null
     */
    public function getMobile(): ?string
    {
        return $this->mobile;
    }

    /**
     * @return string
     */
    public function getNickname(): ?string
    {
        return $this->nickname;
    }

    /**
     * @return string
     */
    public function getPassword(): ?string
    {
        return $this->password;
    }

    /**
     * @return string|null
     */
    public function getAvatar(): ?string
    {
        return $this->avatar;
    }

    /**
     * @return string
     */
    public function getRegIp(): ?string
    {
        return $this->regIp;
    }

    /**
     * @return int|null
     */
    public function getLevel(): ?int
    {
        return $this->level;
    }

    /**
     * @return int
     */
    public function getLevelObtainTime(): ?int
    {
        return $this->levelObtainTime;
    }

    /**
     * @return int
     */
    public function getLevelIsShow(): ?int
    {
        return $this->levelIsShow;
    }

    /**
     * @return int|null
     */
    public function getNation(): ?int
    {
        return $this->nation;
    }

    /**
     * @return string
     */
    public function getGender(): ?string
    {
        return $this->gender;
    }

    /**
     * @return int
     */
    public function getStatus(): ?int
    {
        return $this->status;
    }

    /**
     * @return int
     */
    public function getUpdatedAt(): ?int
    {
        return $this->updatedAt;
    }

    /**
     * @return int
     */
    public function getCreatedAt(): ?int
    {
        return $this->createdAt;
    }

    /**
     * @return int
     */
    public function getIsVerify(): ?int
    {
        return $this->isVerify;
    }

    /**
     * @return int
     */
    public function getSysAvatar(): ?int
    {
        return $this->sysAvatar;
    }

    /**
     * @return string|null
     */
    public function getProfile(): ?string
    {
        return $this->profile;
    }

    /**
     * @return int|null
     */
    public function getBirthday(): ?int
    {
        return $this->birthday;
    }

    /**
     * @return string|null
     */
    public function getDisplayname(): ?string
    {
        return $this->displayname;
    }

    /**
     * @return int|null
     */
    public function getCircleAvatar(): ?int
    {
        return $this->circleAvatar;
    }

    /**
     * @return string|null
     */
    public function getCoverName(): ?string
    {
        return $this->coverName;
    }

    /**
     * @return string|null
     */
    public function getSerialNumber(): ?string
    {
        return $this->serialNumber;
    }

    /**
     * @return int
     */
    public function getFromOldDevice(): ?int
    {
        return $this->fromOldDevice;
    }

    /**
     * @return int|null
     */
    public function getType(): ?int
    {
        return $this->type;
    }

    /**
     * @return int|null
     */
    public function getTypeId(): ?int
    {
        return $this->typeId;
    }

    /**
     * @return int
     */
    public function getBannedCount(): ?int
    {
        return $this->bannedCount;
    }

    /**
     * @return int
     */
    public function getLiftCount(): ?int
    {
        return $this->liftCount;
    }

    /**
     * @return int
     */
    public function getIsUpdateBirthday(): ?int
    {
        return $this->isUpdateBirthday;
    }

    /**
     * @return string
     */
    public function getUuid(): ?string
    {
        return $this->uuid;
    }

    /**
     * @return int|null
     */
    public function getGlobalImStatus(): ?int
    {
        return $this->globalImStatus;
    }

}
